#include "Robot.h"
#include "Etat.h"
#include "Fige.h"

/**
 * avance le robot
 */
void Robot::avancer()
{
	etatCourant->avancer();
}


/**
 * tourne le robot
 */
void Robot::tourner()
{
	etatCourant->tourner();
}


/**
 * saisi un objet
 */
void Robot::saisir()
{
	etatCourant->saisir();
}


/**
 * pose un objet
 */
void Robot::poser()
{
	etatCourant->poser();
}


/**
 * pese un objet
 */
void Robot::peserObjet()
{
	etatCourant->peserObjet();
}


/**
 * evalue un objet
 */
void Robot::evaluerObstacle()
{
	etatCourant->evaluerObstacle();
}


/**
 * arrete le robot
 */
void Robot::arreter()
{
	etatCourant->arreter();
}


/**
 * fait repartir le robot
 */
void Robot::repartir()
{
	etatCourant->repartir();
}


/**
 * affiche l'etat du robot
 */
void Robot::afficherEtat()
{
	etatCourant->afficherEtat();
}


/**
 * change l'etat du robot
 */
void Robot::changerEtat(std::string etat)
{
	etatCourant = mapEtats[etat];
	//Envoie d'un événement à l'état Fige
	if (etat != "Fige")
	{
		((Fige *) mapEtats["Fige"])->setEtatEnRoute(etat);
	}
}
